import request from '@/config/axios'

// 项目管理 VO
export interface ProjectManagementVO {
  id: number // 序号
  userId: number // 用户ID
  projectNumber: string // 项目编号
  projectType: string // 项目类型
  legalPerson: string // 法人姓名
  enterpriseContact: string // 企业联系人
  taxpayerAttribute: number // 纳税人属性
  investmentPromotionOfficer: string // 招商负责人
  registrantId: number // 注册人ID
  registrantName: string // 注册人姓名
  isCountedProject: number // 是否计算项目数
  taxSituation: string // 税收情况
  isSimplifiedEnterprise: number // 是否为简化企业
  isKeyEnterprise: number // 是否为重点企业
  taxRefundRatio: string // 返税比例
  companyName: string // 公司名称
  registeredParkPlatform: string // 注册园区及平台
  legalPersonPhone: string // 法人实名电话号码
  enterpriseContactPhone: string // 企业联系人电话
  serviceFee: number // 收费金额
  introducerOrSubPlatform: string // 介绍人或下级平台
  status: number // 审批结果
  processInstanceId: string // 流程实例的编号
  projectStatus: number // 项目状态
  remark: string // 备注
  startUserSelectAssignees?: Map<string, number[]> // 发起人自选审批人
}

// 项目管理 API
export const ProjectManagementApi = {
  // 查询项目管理分页
  getProjectManagementPage: async (params: any) => {
    return await request.get({ url: `/oa/project-management/page`, params })
  },

  // 分页获取本部门项目管理
  getDeptProjectManagementPage: async (params: any) => {
    return await request.get({ url: `/oa/project-management/dept-page`, params })
  },

  // 获取 Todo 待办项目分页
  getProjectManagementTodoPage: async (params: any) => {
    return await request.get({ url: `/oa/project-management/todo-page`, params })
  },

  // 查询项目管理详情
  getProjectManagement: async (id: number) => {
    return await request.get({ url: `/oa/project-management/get?id=` + id })
  },

  // 新增项目管理
  createProjectManagement: async (data: ProjectManagementVO) => {
    return await request.post({ url: `/oa/project-management/create`, data })
  },

  // 保存项目管理（只入库，不提交流程）
  saveProjectManagement: async (data: ProjectManagementVO) => {
    return await request.post({ url: `/oa/project-management/save`, data })
  },

  // 提交项目管理（入库并提交流程）
  submitProjectManagement: async (data: ProjectManagementVO) => {
    return await request.post({ url: `/oa/project-management/submit`, data })
  },

  // 修改项目管理
  updateProjectManagement: async (data: ProjectManagementVO) => {
    return await request.put({ url: `/oa/project-management/update`, data })
  },

  // 完成项目
  completeProject: async (id: number) => {
    return await request.put({ url: `/oa/project-management/complete?id=` + id })
  },

  // 删除项目管理
  deleteProjectManagement: async (id: number) => {
    return await request.delete({ url: `/oa/project-management/delete?id=` + id })
  },

  // 导出项目管理 Excel
  exportProjectManagement: async (params) => {
    return await request.download({ url: `/oa/project-management/export-excel`, params })
  },

  // 导出本部门项目管理 Excel
  exportDeptProjectManagement: async (params: any) => {
    return await request.download({ url: `/oa/project-management/dept-export-excel`, params })
  },

  // 导入项目管理 Excel
  importProjectManagement: async (data: FormData) => {
    return await request.upload({ url: `/oa/project-management/import-excel`, data })
  },

  // 下载导入模板
  downloadImportTemplate: async () => {
    return await request.download({ url: `/oa/project-management/import-template` })
  },
}
